package com.rds.workflow.service;



import com.rds.workflow.domain.RdaWorkflow2NodeRel;

import java.util.List;

public interface IRdaWorkflow2NodeRelService {

    /**
     * 根据id查询流程节点关系
     *
     * @param id 流程节点ID
     * @return 流程节点
     */
    public RdaWorkflow2NodeRel selectRdaWorkflow2NodeRelById(Long id);

    /**
     * 根据ID查询下级
     */
    public List<RdaWorkflow2NodeRel> selectRdaWorkflow2NodeRelSubordinate(Long fromid,String operationType);

    /**
     * 根据toid查询流程节点关系
     */
    public List<RdaWorkflow2NodeRel> selectRdaWorkflow2NodeRelByToid(Long toid,Long workflowid,String opperationType);


    /**
     * 根据fromid查询流程节点关系
     */
    public List<RdaWorkflow2NodeRel> selectRdaWorkflow2NodeRelByFromid(Long fromid,Long workflowid,String operationType);

    /**
     * 查询流程节点关系
     * @param rdaWorkflow2NodeRel 流程节点关系列表
     * @return 流程列表流程关系集合
     */
    public List<RdaWorkflow2NodeRel> selectRdaWorkflow2NodeRelList(RdaWorkflow2NodeRel rdaWorkflow2NodeRel);

    public List<RdaWorkflow2NodeRel> selectRdaWorkflow2NodeRelByOperationType(Long workflowid,String operationType);

    /**
     * 新增流程节点列表
     *
     * @param rdaWorkflow2NodeRel 流程节点关系列表
     * @return 结果
     */
    public int insertRdaWorkflow2NodeRel(RdaWorkflow2NodeRel rdaWorkflow2NodeRel);

    /**
     * 修改流程节点关系列表
     *
     * @param rdaWorkflow2NodeRel 流程节点关系列表
     * @return 结果
     */
    public int updateRdaWorkflow2NodeRel(RdaWorkflow2NodeRel rdaWorkflow2NodeRel);

    /**
     * 批量删除流程节点关系列表
     * @param ids 需要删除的流程节点关系列表ID
     * @return 结果
     */
    public int deleteRdaWorkflow2NodeRelByIds(Long[] ids);

    /**
     * 根据流程id删除
     * @param workflowid 流程id
     * @return 结果
     */
    public int deleteRdaWorkflow2NodeRelByWorkflowid(Long workflowid);

    /**
     * 根据ID查询下级
     */
    public List<RdaWorkflow2NodeRel> selectRdaWorkflow2NodeRelSubordinateAll(Long fromid,String operationType);

    /**
     * 根据ID查询上级级
     */
    public List<RdaWorkflow2NodeRel> selectRdaWorkflow2NodeRelUpper(Long fromid,String operationType);

    /**
     * 根据fromid查询流程节点关系
     */
    public List<RdaWorkflow2NodeRel> selectRdaWorkflow2NodeRelByFromids(Long fromid,Long workflowid,String operationType,String operationState);

    /**
     * 根据toid查询流程节点关系
     */
    public List<RdaWorkflow2NodeRel> selectRdaWorkflow2NodeRelByToids(Long toid,Long workflowid,String opperationType,String operationState);

    /**
     * 查询所有
     */
    public List<RdaWorkflow2NodeRel> selectRdaWorkflow2NodeRelAllList(RdaWorkflow2NodeRel rdaWorkflow2NodeRel);
}
